A scene graph is a data structure commonly used by vector-based display applications. The scene graph is typically a collection of nodes in a graph or tree structure. A node typically include display properties for an object associated with the node and one or more sets of display modifiers such that rendering the node includes applying the display modifiers to the display properties to display the object. A node may have children but often only a single parent. A parent node may render its children nodes and may propagate properties or modifiers to its children. Additionally, nodes in a scene graph may be grouped such that an operation applied to a group automatically propagates to its members. In some scene graphs, a node can have a relation to other nodes, perhaps even itself.
When creating rich displays using a scene graph, such as visual interfaces, it is often desirable to support the ability to lay out nodes with respect to each other, as well as define visual effects and animations that are either factored into that layout or are not. Typically, scene graph systems struggle to support both of these concepts. This is further complicated when the displays are dynamic rather than merely static.